package servlets;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import business.Juridica;
import business.Venda;
import dao.ClienteDao;
import dao.JuridicaDao;

public class ServletJuridica extends HttpServlet implements Servlet 
{
	private static final Logger log = Logger.getLogger( ClienteDao.class );
	JuridicaDao juridicadao = new JuridicaDao();
	
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) 
			throws ServletException, IOException 
	{
		doPost(request,response);
	}
	
	protected void doPost(HttpServletRequest request, 
				  HttpServletResponse response) 
				  throws ServletException, IOException
	{
		String comando = request.getParameter("comando");
		
		if (comando == null)
		{
			response.sendRedirect("juridico.jsp");
		}		
		else if (comando.equals("inserir"))
		{
			String id =request.getParameter("id");
			String nome = request.getParameter("nome");
			String cnpj = request.getParameter("cnpj");
			String tCel = request.getParameter("tCel");
			String endereco = request.getParameter("endereco");
			String tFixo = request.getParameter("tFixo");
			String tPessoa = request.getParameter("tPessoa");
			String contato = request.getParameter("contato");
			
			
			Juridica c1 = new Juridica();
			log.debug("id "+id);
			try {
				c1.setId(Integer.parseInt(id));
			} catch (NumberFormatException e1) {
				log.error("Number Format Exception", e1);
				c1.setId(0);
			}			
			log.debug("cnpj "+cnpj);
			try {
				c1.setCnpj(Integer.parseInt(cnpj));
			} catch (NumberFormatException e) {
				c1.setCnpj(0);
				log.error("Number Format Exception", e);
				
			}
			log.debug("nome "+nome);
			c1.setNome(nome);
			log.debug("tCel "+tCel);
			try {
				c1.setTCel(Integer.parseInt(tCel));
			} catch (NumberFormatException e) {
				log.error("Number Format Exception", e);
			}
			log.debug("endereco "+endereco);
			c1.setEndereco(endereco);
			log.debug("tFixo "+tFixo);
			try {
				c1.setTFixo(Integer.parseInt(tFixo));
			} catch (NumberFormatException e) {
				log.error("Number Format Exception", e);
			}
			log.debug("tPessoa "+tPessoa);
			c1.setTPessoa(tPessoa);
			log.debug("contato "+contato);
			c1.setContato(contato);
		
			
			juridicadao.adicionarJuridica(c1);
			
			response.sendRedirect("juridicaInserir.jsp?mensagem=juridica Inserido com Sucesso!");
		}
		else if (comando.equals("remover"))
		{
			String idParam = request.getParameter("id");
			int    id      = Integer.parseInt(idParam);
			
			juridicadao.removerJuridica(id);
			
			response.sendRedirect("juridicaRemover.jsp?mensagem=juridica Removido com Sucesso!");			
		}
		else if (comando.equals("listar"))
		{
			ArrayList funcionarios = juridicadao.listarJuridicas();
			
			request.setAttribute("lista_funcionarios",funcionarios);
			
			RequestDispatcher rd = request.getRequestDispatcher("funcionarioListar.jsp");
			rd.forward(request,response);			
		}	else if (comando.equals("consultar"))
		{
			String codJuridica = request.getParameter("codJuridica");

			Juridica juridica = juridicadao.leJuridica(Integer.parseInt(codJuridica));
			
			request.setAttribute("altera_juridica",juridica);
			
			RequestDispatcher rd = request.getRequestDispatcher("juridicaAlterar.jsp");
			rd.forward(request,response);			
		}
	}
}

